﻿#pragma once

/************************************************************************************************/
/* 										子系统的启动和终止										*/
/*==============================================================================================*/ 
/* 1. 利用单例																					*/
/*----------------------------------------------------------------------------------------------*/ 
/* 2. 让构建和析构函数完全不做任何事情，然后明确的为各单例类定义启动和终止函数					*/
/*     按所需的明确次序调用启动和终止函数														*/
/************************************************************************************************/

namespace feifei
{
	class ModuleBase
	{
	public:
		virtual ~ModuleBase() {};

		virtual int Initialize() = 0; // 用于初始化模块
		virtual void Finalize() = 0; // 用于模块结束的时候清理

		virtual void Tick() = 0; // 驱动模块驱动该模块执行的。每调用一次，模块进行一个单位的处理
	};

}// end namespace feifei
